Structure and Efficiency of Computer Programs
نویسنده
چکیده
Much fundamental research in computer science is driven by two complementary notions of beauty in programming, that arising from the structure of a program and that arising from the efficiency of an algorithm. As Lewin famously said, “there’s nothing so practical as good theory” [Marrow, 1984]. Decades of experience has borne out the remarkable efficacy of theory in improving the practice of programming. Programming language theory is the study of the structural aspects of programming. The central notion is that of compositionality, the construction of a program by composition of separable parts. Results are formulated in terms of programming languages defined by type systems, which mediate composition of components, and semantics, which determines the execution behavior of those programs. Notable theorems include the parametricity theorem, which provides the mathematical foundation for the informal concept of data abstraction. Algorithm theory is the study of the efficiency aspects of programming. The central notion is of asymptotic analysis of the time and space usage of a program, expressed in terms of a size measure or a probability distribution on the inputs. Results are formulated in terms of machine models of computation, such as TM’s or RAM’s, which define the basic steps of an algorithm and their exceution cost, perhaps relative to parameters such as the number of processors on a PRAM. Algorithms are expressed in “high-level assembler”, a simple imperative programming language, for which the translation to the “official” machine model is readily understood. Often algorithms are expressed in terms of explicit representations of data structures using “pointers” and “words” to manage storage. By and large the algorithms and programming languages communities operate in isolation from one another. Programming languages researchers focus on the practicalities of building large software systems, and are seldom concerned about efficiency. Algorithms researchers focus on the efficiency of core programming techniques, and are seldom concerned about composition. (These are, of course, caricatures of reality, but it seems to me that they contain an element of truth.)
منابع مشابه
Solar cell efficiency enhancement using a hemisphere texture containing metal nanostructures
One major problem of the conventional solar cells is low conversion efficiency. In this work, we have proposed a new design including hemisphere texturing on top and metallic plasmonic nanostructure under the silicon layer to enhance the optical absorption inside the photosensitive layer. The finite-difference time-domain (FDTD) method has been used to investigate the interaction of light wi...
متن کاملProposing an Efficient Software-based Method to Enhance Reliability of Computer Systems against Soft Errors
In recent years, along with rapid developments in technology, computer systems haveincreasingly become more integrated and more modular. Indeed, the reliability and efficiency ofcomputer systems are of high significance. Hence, the quantitative evaluation of the optimizationof reliability indexes in computer systems is considered to be a crucial issue. Reliabilityenhancement of computer systems...
متن کاملPlasmonic Solar Cells, a New Way to Enhance Energy Conversion Efficiency: Analysis and Modeling of Effect of Metal Geometry
In this article, the effect of plasmonic properties of metal nanoparticles with different shapes, and moreover, their plasmonic-photonic interaction, on solar cell performance were investigated and simulated. Because of low conversion efficiency and then high cost of solar cells, it is difficult to commercialize and replace them with conventional energy resources. But in recent years, the plasm...
متن کاملMeasuring the Efficiency of Financial Cloud Services in the Banking Industry Using the Modified Dynamic DEA with Network Structure: The Case of Iran E-Banking
Nowadays, the great benefits of cloud computing have dramatically increased the number of e-banking users. Hence, the competition in the banking industry has boosted and managers need to evaluate their branches on a regular basis. To this end, this study aims to evaluate cloud-based banking systems based on the Quality of Service (QoS) attributes using the Dynamic Network Data Envelopment Analy...
متن کاملAnalysis of Tall Buildings with Bundled Tube System Subjected to Wind and Earthquake loads
At present, the tubular structural systems are mainly used in tall buildings to withstand earthquake loads. Although it is possible to analyse the structure by finite element methods using standard three dimensional programs, the system is generally time-consuming and expensive in the primary design work. In this paper, for the analysis of Framed-Tube systems, a simple method was studied and de...
متن کاملAnalysis of Tall Buildings with Bundled Tube System Subjected to Wind and Earthquake loads
At present, the tubular structural systems are mainly used in tall buildings to withstand earthquake loads. Although it is possible to analyse the structure by finite element methods using standard three dimensional programs, the system is generally time-consuming and expensive in the primary design work. In this paper, for the analysis of Framed-Tube systems, a simple method was studied and de...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2014